[Linux 驱动]模块加载RTX8025驱动

您所在的位置:网站首页 insmod 加载ko出错 [Linux 驱动]模块加载RTX8025驱动

[Linux 驱动]模块加载RTX8025驱动

2023-03-02 18:46| 来源: 网络整理| 查看: 265

系统版本:Ubuntu18.04-64

编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)

uboot版本:2018.07 -linux4sam_6.0

板子型号:at91sama5d3x-xplained

MCU型号:sama5d36

RTC型号:RX8025T

[Datasheet] RX8025T时钟芯片解读

Linux内核中驱动的方式有很多种实现方式,rtx8025是基于iic总线通讯,会使用内核的总线驱动框架,在次基础上实现驱动功能。 驱动开发在调试阶段很难避免要修修改改,如果源码编译到内核里面,每次修改就需要重新编译内核、烧录内核,然后启动文件系统后,再用应用程序去验证驱动的正确性,效率实在是低下;所以很多聪明的大神就想出一招使用模块的方式,动态把驱动程序加载到内核中,可以动态加载和卸载,对应项目实战开发非常高效,也是工作中必备的技能。

一、内核源码中先屏蔽Rtc8025驱动程序

内核中源码必须把rtx8025驱动不能编译进内核,否则驱动注册进去后,就无法再次加载一个名字相同的驱动文件了。

linux-at91-linux-4.19-at91\drivers\rtc\Makefile文件修改,屏蔽掉编译选项;

在这里插入图片描述

linux-at91-linux-4.19-at91\drivers\rtc\rtc-rx8025.c就不会编译进内核;

二、把驱动文件复制出来

驱动文件复制一份,做相应的修改

设备树文件添加rtc8025驱动,iic的管脚定义等;

i2c2: [email protected] { //根据硬件选择寄存器号,i2c2 dmas = , ; /* Do not use DMA for i2c2 */ pinctrl-0 = ;//管脚定义 status = "okay"; rx8025: [email protected]32 { compatible = "rx8025"; reg = ;//iic器件地址 status = "okay"; }; }; i2c2: [email protected] { compatible = "atmel,at91sam9x5-i2c"; reg = ; interrupts = ; dmas = , ; dma-names = "tx", "rx"; pinctrl-names = "default"; pinctrl-0 = ; #address-cells = ; #size-cells = ; clocks = ; status = "disabled"; }; i2c2 { pinctrl_i2c2: i2c2-0 { atmel,pins = ; /* TWCK2 pin, conflicts with LCDDAT19, ISI_D3 */ }; };

设备匹配驱动文件,这里主要依据设备名比对的方式,名称一致,匹配成功。

在这里插入图片描述

三、编写对应的Makefile文件,指定内核路径,编译出.ko文件

在这里插入图片描述

rtc-8025.c暂时不用修改内核,编译看看是否会报错;

模块驱动的Makefile注意事项

在这里插入图片描述

四、加载测试

编译出的ko文件为rtc-rx8025.ko

拷贝到文件系统,修改权限

#chmod 777 rtc-rx8025.ko

#insmod rtc-rx8025.ko加载到内核

#hwclock -r查看对应的时钟寄存器

模块驱动就可以调试了。

更多linux知识点推荐:

[linux kernel]内核启动阶段控制IO口时序输出

[职场吐槽]如何缓解焦虑

[linux kernel] 内核下ksz8081驱动调试

[linux kernel] 内核下ksz9031驱动调试

[linux kernel]内核图形化裁剪配置

[linux kernel]内核移植过程记录

[linux kernel] 内核启动流程梳理

[linux 底层]u-boot EMMC驱动

[linux 底层]u-boot图形化裁剪配置

[Linux 底层]U-boot ksz9031网络驱动调试

[Linux 底层]U-boot调试命令使用技巧

[Linux 底层]U-boot编译移植

[Linux 底层]U-boot烧录脚本介绍SecureCRT

[Linux 底层]bootstrap移植裁剪及编译

[Linux 底层] 平台软件分层介绍

[Linux 驱动] RS485测试程序编写

[Linux 驱动] CAN测试程序编写

推荐阅读:

芯片手册解读 | Linux底层 | 职场吐槽 | C语言视频

关注微信公众号,回复“rtc8025模块驱动”,下载启动文件源代码。 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3